<?php
class cotizar
{
	private $tpl;
	
	public function __construct($tpl)
	{

		$this->tpl = & $tpl;
		require 'mensajes.php';
		$this->mensajes = new mensajes($tpl);	
	}
	
	public function _condition()
	{
		return array(
			'proyecto' => array(  '__menu' ,'proyecto'  ),
			'sin_menu' => array(  'sin_menu'  ),
			'mensajes' => explode(',','__menu,sin_menu,con_menu'),
			'vista_condicional' => array( '__menu', empty($_GET['OCULTO'])? 'mostrar_oculto' : 'vista_condicional' )
		);
	}
	public function _default()
	{
		$this->__menu();
		return "se cargara todo por defecto";
	}
	public function __menu()
	{
		/*return $this->tpl->parse('menu')->assign('LISTA',array(

			))->render();/**/
		$this->tpl->MENU = $this->tpl->parse('proyecto/menu_admin')->render();
	}
	public function proyecto($id = 0)
	{
		$cotizar = DB::SELECT('proyecto','*','WHERE proyecto_id=? AND estado=0')->set($id);
		if($cotizar->rowCount() < 1){return 'este proyecto no esta para cotizar';}
		$this->tpl->parse('cotizar/proyecto')
				  ->assigns($cotizar->fetch(DB::FETCH_ASSOC))
				  ->assign('URL',
				DB::SELECT('documentos','filename,url','WHERE proyecto_id=?')->set($id)->fetchAll(DB::FETCH_KEY_PAIR)
							)
				  ->assign('DOCS',
						file_exists(BASE_PATH . '/plataforma/documentos/' .$id )
						?new FilterDocumentos(new directoryIterator(BASE_PATH . '/plataforma/documentos/' .$id))
						:array()
				  );

		return $this->tpl->render() . $this->mensajes->lista($id);
	}
	public function sin_menu()
	{
		return "<h2>no tiene menu</h2><h1><a href='".URI::newController(ROUTER,'dummy')."'>Volver al principio con menu VOLER</a></h1>";
	}
	public function mostrar_oculto()
	{
		return "<a href='".URI::addArgument('OCULTO',true)."'>Mostrar la vista oculta solo si esta presente  en la URL &OCULTO=show</a>";
	}
	public function vista_condicional()
	{
		return "<h4>se esta mostrando la vista condicional como se esperaba por lo cual si tienes alguna duda solo presentala :)</h4>";
	}
	public function __call($name,$args)
	{
		$this->__menu();
		return "No existe este metodo $name";
		
	}
}
class FilterDocumentos extends FilterIterator{
	public function accept()
	{
		return parent::current()->isFile();
	}
	public function key(){
		return parent::current()->getFilename();
	}
	public function current()
	{
		//$url = str_replace(BASE_PATH,BASE_URL,parent::current()->getPathname());
		$url = strtr(parent::current()->getPathname() , array(
														BASE_PATH => BASE_URL,
														DS        => '/'
															));
		return $url;
		//return '/monvic/plataforma/documentos/5/' . parent::current()->getFilename();
	}
}
/*
$a = new directoryIterator('c:/sitios/monvic/plataforma/documentos/5');
$a = new documentos($a);
foreach($a as $key => $value)
{
	echo "$value\n";
}/**/